function classView(){
	var me = this;
	me.assetDir 		= "";
	me.loadedImages 	= 0;
	me.numImages 		= 0;

	me.layerStage		= "";
	me.layerMesnagens 	= "";
	me.layerPlayers 	= "";
	me.layerTiros	 	= "";
	
	//objetos do jogo
	me.players	 		= {};
	me.inimigos			= {};
	me.tiros			= {};
	
	//funcao q carrega todas as imagens do jogo
    me.start = function(){
		//verifica quantas imagens serao carregadas
		me.numImages = Object.keys(configuracao.elementos).length;
		for(var obj in configuracao.elementos) {
			var img = new Image();
			img.src = me.assetDir+configuracao.elementos[obj].src;
			img.onload = function() {
				if(++view.loadedImages >= view.numImages) {
					//carrega o stagio e os layers do jogo
			    	me.loadSatageAndLayers();
			    	timer.start();
			    };
			};
			configuracao.elementos[obj].imagem = img; 
		};
    };	
	
    //inicia o estagio
	me.loadSatageAndLayers = function(){
		//estagio onde o jogo vai rolar
		me.layerStage = new Kinetic.Stage({
			container: "container",
			width: configuracao.width,
			height: configuracao.height
		});

		//layer de mensagens do jogo
		me.layerMesnagens = new Kinetic.Layer();
		// adiciona o layer de mensagens
		me.layerStage.add(me.layerMesnagens);

		//layer onde os personagens serao carregados
		me.layerPlayers = new Kinetic.Layer();
		// adiciona o layer do fundo da fase ao stage
		me.layerStage.add(me.layerPlayers);

		//layer onde os personagens serao carregados
		me.layerTiros = new Kinetic.Layer();
		// adiciona o layer do fundo da fase ao stage
		me.layerStage.add(me.layerTiros);

		
 		//funcao q mostra as mensagens
        me.loadMensagens();
        //funcao q carega o personagem player1
        me.loadPlayer("player1");
        //funcao q carega o personagem inimigo1
        me.loadInimigo("inimigo1");
	};
	
    //funcao q cria o layer de fundo do jogo
    me.loadMensagens = function(){
    	me.layerMesnagens.clear();
	    var context = me.layerMesnagens.getContext();
	    context.font = "10pt Calibri";
	    context.textAlign = "center";
	    context.fillStyle = "white";
	    context.fillText("- Space Invader -", configuracao.width / 2, 15);
	    context.fillText("- Score: "+configuracao.score+" -", 55, 15);
    };

    //funcao q carega os players
    me.loadPlayer = function(id){
    	if(configuracao.elementos[id].active){
		  	//cria o objeto personagem a partir da imagem 
			var player = new Kinetic.Image({
				image: configuracao.elementos[id].imagem,
				id: configuracao.elementos[id].id,
				x: configuracao.elementos[id].x,
				y: configuracao.elementos[id].y,
				visible: configuracao.elementos[id].active,
				draggable: false,
	            offset: {
	                x: 12,
	                y: 12
	              }
			});
			//adiciona o personagem ao layer
			me.layerPlayers.add(player);
		    me.layerStage.add(me.layerPlayers);
		    me.players[id] = player;
    	};
    };

    //funcao q carega os inimigos
    me.loadInimigo = function(id){
    	if(configuracao.elementos[id].active){
		  	//cria o objeto inimigo a partir da imagem 
			var inimigo = new Kinetic.Image({
				image: configuracao.elementos[id].imagem,
				id: configuracao.elementos[id].id,
				x: configuracao.elementos[id].x,
				y: configuracao.elementos[id].y,
				visible: configuracao.elementos[id].active,
				draggable: false,
	            offset: {
	                x: 12,
	                y: 12
	              }
			});
			//adiciona o personagem ao layer
			me.layerPlayers.add(inimigo);
		    me.layerStage.add(me.layerPlayers);
		    me.inimigos[id] = inimigo;
    	};
    };
    
    //funcao q carega os tiros
    me.loadTiro = function(id){
    	configuracao.tirosDados++;
	  	//cria o objeto inimigo a partir da imagem 
    	me.tiros[configuracao.tirosDados] = new Kinetic.Rect({
			id:"tiro"+configuracao.tirosDados,
	        x: me.players[id].getX()+1,
	        y: me.players[id].getY()-7,
	        width: 2,
	        height: 4,
	        fill: 'red',
	        stroke: 'yellow',
	        strokeWidth: 1,
			draggable: false,
            offset: {
                x: 1,
                y: 2
              }
		});
		
		//cria novo elemento Tiro
		var elemntoTiro = new classTiro();
		//adiciona sua posicao
		elemntoTiro.x 							= me.players[id].getX()+1;
		elemntoTiro.y 							= me.players[id].getY()-7;
		//adiciona de quem é o tiro
		elemntoTiro.tipo 						= "player";
		//deixa tiro ativo
		elemntoTiro.active						= true;
		//adiciona ao objeto geral tiros
		configuracao.tiros[configuracao.tirosDados]	= 	elemntoTiro;
		
		//adiciona o tiro ao layer
		me.layerTiros.add(me.tiros[configuracao.tirosDados]);
	    me.layerStage.add(me.layerTiros);
    };    
    
	//inicia o estagio
	me.updateLayers = function(){
		me.loadMensagens();
		me.updatePlayers();
		me.updateInimigos();
		me.updateTiros();
		me.layerPlayers.draw();
		me.layerTiros.draw();
	};    
    
    //funcao atualiza os players
    me.updatePlayers = function(){
    	for(var id in me.players) {
        	if(configuracao.elementos[id].active){
			  	//cria o objeto personagem a partir da imagem 
				me.players[id].setX(configuracao.elementos[id].x);
				me.players[id].setY(configuracao.elementos[id].y);
        	};
    	};
    };

    //funcao atualiza os inimigos
    me.updateInimigos = function(){
    	for(var id in me.inimigos) {
        	if(configuracao.elementos[id].active){
			  	//cria o objeto personagem a partir da imagem 
				me.inimigos[id].setX(configuracao.elementos[id].x);
				me.inimigos[id].setY(configuracao.elementos[id].y);
        	};
    	};
    };

    //funcao atualiza os tiros
    me.updateTiros = function(){
    	for(var id in me.tiros) {
        	if(configuracao.tiros[id].active){
			  	//cria o objeto personagem a partir da imagem 
				me.tiros[id].setX(configuracao.tiros[id].x);
				me.tiros[id].setY(configuracao.tiros[id].y);
        	}else{
        		me.layerTiros.remove(me.tiros[id]);
        	};
    	};
    };
};